/*
 * Copyright 2016-2017 TVI Go Easy.
 * Created on 2017/4/24 12:19
 */
package org.mechanic.fund.service.product;

import org.mechanic.fund.domain.product.ProductAttachment;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * 产品附件服务接口
 *
 * @author mechanic
 * @version 0.0.1
 */
public interface IProductAttachmentService {
    /**
     * 返回匹配指定产品编号和附件类型编号的按createTime降序排列的产品附件列表
     *
     * @param productId 产品编号
     * @param typeId 附件类型编号
     * @return 产品附件列表
     */
    Page<ProductAttachment> getProductAttachmentList(String productId, String typeId, PageRequest pageRequest);

    /**
     * 返回匹配指定主键编号的对象
     *
     * @param id 主键编号
     * @return 对象实体
     */
    public ProductAttachment getById(String id);

    /**
     * 保存。 主键为空则create，不为空则update。
     *
     * @param productAttachments 被保存的对象集合
     */
    void save(List<ProductAttachment> productAttachments, String operationUserId);

    /**
     * 删除匹配主键ID的对象
     *
     * @param id 主键ID
     */
    void delete(String id);
}
